<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>gui2py: Fichero Fuente build/lib.linux-x86_64-2.7/gui/controls/gridview.py</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../edit.gif"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">gui2py
   &#160;<span id="projectnumber">0.9.3</span>
   </div>
   <div id="projectbrief">Interfaz de desarrollo de aplicaciones graficas</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generado por Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Buscar');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="../../index.html"><span>Página&#160;principal</span></a></li>
      <li><a href="../../namespaces.html"><span>Paquetes</span></a></li>
      <li><a href="../../annotated.html"><span>Clases</span></a></li>
      <li class="current"><a href="../../files.html"><span>Archivos</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="../../search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Buscar" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="../../files.html"><span>Lista&#160;de&#160;archivos</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html','../../');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Todo</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Clases</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Archivos</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Funciones</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Propiedades</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">gridview.py</div>  </div>
</div><!--header-->
<div class="contents">
<a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py.html">Ir a la documentación de este archivo.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html">    1</a></span>&#160;<span class="comment">#!/usr/bin/python</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"># -*- coding: utf-8 -*-</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="stringliteral">&quot;gui2py&#39;s Grid Model-View-Controller control (uses wx.Grid &amp; PyGridBaseTable)&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#a45fcff37b100b5797fa8f4ea8a89242d">    6</a></span>&#160;__author__ = <span class="stringliteral">&quot;Mariano Reingart (reingart@gmail.com)&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#a503889ce6c08d824bc3e34d3574f1939">    7</a></span>&#160;__copyright__ = <span class="stringliteral">&quot;Copyright (C) 2013- Mariano Reingart&quot;</span>  <span class="comment"># where applicables</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"># Initial implementation was based on PythonCard&#39;s Grid component, </span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"># but redesigned and overhauled a lot (specs renamed, events refactorized, etc.)</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"># Note: pythoncard version was trivial, Model and View code are completely new</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">import</span> string</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">import</span> wx</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="keyword">import</span> wx.grid <span class="keyword">as</span> gridlib</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="keyword">from</span> ..event <span class="keyword">import</span> GridEvent</div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">from</span> ..component <span class="keyword">import</span> Control, Component, SubComponent</div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">from</span> ..spec <span class="keyword">import</span> Spec, EventSpec, InitSpec, StyleSpec, InternalSpec</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">from</span> .. <span class="keyword">import</span> registry</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">from</span> .. <span class="keyword">import</span> images</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html">   24</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html">wx_Grid</a>(gridlib.Grid):</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="stringliteral">&quot;Simple Grid control&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="comment"># initially based on GridSimple.py / Grid_MegaExample.py wxPython demo</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    </div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a462ada0c0bacb0c612bef0b347a41e15">   28</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a462ada0c0bacb0c612bef0b347a41e15">__init__</a>(self, parent, *args, **kwargs):</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="comment"># The base class must be initialized *first*</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        gridlib.Grid.__init__(self, parent, -1)</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="comment">##mixins.GridAutoEditMixin.__init__(self)</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a6a2fce3262e4fbaeaeea9496dbe3bcb4">   33</a></span>&#160;        self.<a class="code" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a6a2fce3262e4fbaeaeea9496dbe3bcb4">_table</a> = <a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html">GridTable</a>(self, plugins={})</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        self.SetTable(self.<a class="code" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a6a2fce3262e4fbaeaeea9496dbe3bcb4">_table</a>)</div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        </div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="comment"># Allow the user to type a string not in choices array </span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="comment"># (see ComboCellEditor for a custom implementation bellow)</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        self.RegisterDataType(<span class="stringliteral">&quot;combo&quot;</span>,</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;                              gridlib.GridCellStringRenderer(),</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;                              gridlib.GridCellChoiceEditor([], <span class="keyword">True</span>))</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        <span class="comment">#self._plugins = plugins</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a3407c195c9f5b5a86799efb82f735b94">   43</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a3407c195c9f5b5a86799efb82f735b94">Reset</a>(self):</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="stringliteral">&quot;&quot;&quot;reset the view based on the data in the table.  Call</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="stringliteral">        this when rows are added or destroyed&quot;&quot;&quot;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        self._table.ResetView(self)</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html">   49</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html">GridView</a>(Control):</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="stringliteral">&quot;A Grid (gridlib.Grid) used for displaying and editing tabular data&quot;</span></div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a68a2324579c55ff9d1abff14f8b828ad">   52</a></span>&#160;    _wx_class = wx_Grid</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#ab03a4c766d4648427eb813f05822cb70">   53</a></span>&#160;    _image = images.grid</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a9e9bb0622ca1cd26d746c560b9b4d46a">   55</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a9e9bb0622ca1cd26d746c560b9b4d46a">_get_items</a>(self):</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="keywordflow">return</span> self.<a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a1d392aa368d3df15e35a67ce1df22ef6">_items</a></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a19b8177958b9d1f1213b9ed51c60e737">   58</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a19b8177958b9d1f1213b9ed51c60e737">_set_items</a>(self, a_list):</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keywordflow">if</span> a_list <span class="keywordflow">is</span> <span class="keywordtype">None</span>:</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;            a_list = []</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <span class="keywordflow">elif</span> <span class="keywordflow">not</span> isinstance(a_list, (list, tuple, dict)):</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;            <span class="keywordflow">raise</span> AttributeError(<span class="stringliteral">&quot;unsupported type, list/tuple/dict expected&quot;</span>)</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a1d392aa368d3df15e35a67ce1df22ef6">   64</a></span>&#160;        self.<a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a1d392aa368d3df15e35a67ce1df22ef6">_items</a> = <a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html">GridModel</a>(self, a_list)</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        self.wx_obj.Refresh()</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="comment">#self.insert_items(a_list)</span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        </div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#af45f76ef84e4f908dd8341bb4694b0bf">   68</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#af45f76ef84e4f908dd8341bb4694b0bf">_get_column_headings</a>(self):</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="stringliteral">&quot;Return a list of children sub-components that are column headings&quot;</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="comment"># return it in the same order as inserted in the Grid</span></div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        headers = [ctrl <span class="keywordflow">for</span> ctrl <span class="keywordflow">in</span> self <span class="keywordflow">if</span> isinstance(ctrl, GridColumn)]</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        <span class="keywordflow">return</span> sorted(headers, key=<span class="keyword">lambda</span> ch: ch.index)</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#af68f80c6d63d03ba60e1b03827f320df">   74</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#af68f80c6d63d03ba60e1b03827f320df">_get_row_label</a>(self):</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <span class="stringliteral">&quot;Return the row label format string&quot;</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keywordflow">return</span> self.wx_obj._table._row_label</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    </div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a820d36ab034f85443928e13ccbaa3a6a">   78</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a820d36ab034f85443928e13ccbaa3a6a">_set_row_label</a>(self, value):</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="stringliteral">&quot;Set the row label format string (empty to hide)&quot;</span></div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <span class="keywordflow">if</span> <span class="keywordflow">not</span> value:</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;            self.wx_obj.SetRowLabelSize(0)</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;            self.wx_obj._table._row_label = value</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    </div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a4838958e5f9b8b25e2ec596e8e62623c">   85</a></span>&#160;    columns = InternalSpec(_get_column_headings,</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                           doc=<span class="stringliteral">&quot;Return a list of current column headers&quot;</span>)</div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a8a3d29bdbc5f94b9e9800a63e99068ec">   87</a></span>&#160;    items = InternalSpec(_get_items, _set_items)</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    </div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#aa117c7669fc5a703fe42fdaa54c359db">   89</a></span>&#160;    row_label = Spec(_get_row_label, _set_row_label,</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        default=<span class="keywordtype">None</span>,</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        doc=<span class="stringliteral">&quot;indicate to the control the number of items it contains (virtual)&quot;</span>)</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    </div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment"># events:</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a40c08a8b321ea9100aa8a2be7800dc04">   94</a></span>&#160;    ongridmouseclick = EventSpec(<span class="stringliteral">&#39;grid_mouse_click&#39;</span>, </div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;                       binding=gridlib.EVT_GRID_CELL_LEFT_CLICK, kind=GridEvent)</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a9a1c963a153c878df15086fdadc268b8">   96</a></span>&#160;    ongridmouserclick = EventSpec(<span class="stringliteral">&#39;grid_mouse_rclick&#39;</span>, </div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;                       binding=gridlib.EVT_GRID_CELL_RIGHT_CLICK, kind=GridEvent)</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a1a721c7974a71f91a95966297a8717cc">   98</a></span>&#160;    ongridmousedclick = EventSpec(<span class="stringliteral">&#39;grid_mouse_dclick&#39;</span>, </div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                       binding=gridlib.EVT_GRID_CELL_LEFT_DCLICK, kind=GridEvent)</div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a1ca2009d0b912ab32b82d5beec3ab046">  100</a></span>&#160;    ongridlabelclick = EventSpec(<span class="stringliteral">&#39;grid_label_click&#39;</span>, </div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                       binding=gridlib.EVT_GRID_LABEL_LEFT_CLICK, kind=GridEvent)</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#ad4edf8abdf990c8859d3ded093b13a59">  102</a></span>&#160;    ongridlabelrclick = EventSpec(<span class="stringliteral">&#39;grid_label_rclick&#39;</span>, </div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                       binding=gridlib.EVT_GRID_LABEL_RIGHT_CLICK, kind=GridEvent)</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a8728487f553abbce9d4145678918751a">  104</a></span>&#160;    ongridlabeldclick = EventSpec(<span class="stringliteral">&#39;grid_label_dclick&#39;</span>, </div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                       binding=gridlib.EVT_GRID_LABEL_LEFT_DCLICK, kind=GridEvent)</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#ab078feac5f8bceff49d971c64c45626f">  106</a></span>&#160;    ongridrowsize = EventSpec(<span class="stringliteral">&#39;grid_row_size&#39;</span>, </div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                       binding=gridlib.EVT_GRID_ROW_SIZE, kind=GridEvent)</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#aa2e20893cd0a1352eaa69d0525b5ddad">  108</a></span>&#160;    ongridcolsize = EventSpec(<span class="stringliteral">&#39;grid_col_size&#39;</span>, </div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                       binding=gridlib.EVT_GRID_COL_SIZE, kind=GridEvent)</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a524d508a269a0bda022f4fe39a095c4b">  110</a></span>&#160;    ongridrangeselect = EventSpec(<span class="stringliteral">&#39;grid_range_select&#39;</span>, </div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                       binding=gridlib.EVT_GRID_RANGE_SELECT, kind=GridEvent)</div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a10eec8786e2f5f4c103d93a68465a632">  112</a></span>&#160;    ongridcellchanged = EventSpec(<span class="stringliteral">&#39;grid_cell_changed&#39;</span>, </div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;                       binding=wx.VERSION &lt; (2, 9, 5) </div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                           <span class="keywordflow">and</span> gridlib.EVT_GRID_CELL_CHANGE <span class="keywordflow">or</span></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                               gridlib.EVT_GRID_CELL_CHANGED, kind=GridEvent)</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a280d861383f5cbb088b584ce332d93e9">  116</a></span>&#160;    ongridselectcell = EventSpec(<span class="stringliteral">&#39;grid_select_cell&#39;</span>, </div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                       binding=gridlib.EVT_GRID_SELECT_CELL, kind=GridEvent)</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a6599761e4322e8a4d95fc66291e77299">  118</a></span>&#160;    ongrideditornshown = EventSpec(<span class="stringliteral">&#39;grid_editor_shown&#39;</span>, </div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                       binding=gridlib.EVT_GRID_EDITOR_SHOWN, kind=GridEvent)</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a92bcab2e69ff02477631066d8d72ade7">  120</a></span>&#160;    ongrideditorhidden = EventSpec(<span class="stringliteral">&#39;grid_editor_hidden&#39;</span>, </div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                       binding=gridlib.EVT_GRID_EDITOR_HIDDEN, kind=GridEvent)</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#acedbcdabf3657b0c2f364bacad2c942f">  122</a></span>&#160;    ongrideditorcreated = EventSpec(<span class="stringliteral">&#39;grid_editor_created&#39;</span>, </div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                       binding=gridlib.EVT_GRID_EDITOR_CREATED, kind=GridEvent)</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment"># Avoid deprecation warning (and TypeError) in WX Phoenix</span></div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="keywordflow">if</span> wx.VERSION &lt; (2, 9, 5) <span class="keywordflow">or</span> <span class="stringliteral">&#39;classic&#39;</span> <span class="keywordflow">in</span> wx.version():</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#afb47020f3a26181d6cc5f0d86241abba">  128</a></span>&#160;    GridTableBase = gridlib.PyGridTableBase</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    GridTableBase = gridlib.GridTableBase</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html">  133</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html">GridTable</a>(<a class="code" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#afb47020f3a26181d6cc5f0d86241abba">GridTableBase</a>):</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="stringliteral">&quot;A custom wx.Grid Table using user supplied data&quot;</span></div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    </div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a95530e209d5680a7fcfadc395df4bd1f">  136</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a95530e209d5680a7fcfadc395df4bd1f">__init__</a>(self, wx_grid, plugins):</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="stringliteral">&quot;data is a list of the form {row_index: {col_name: value}&quot;</span></div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="comment"># The base class must be initialized *first*</span></div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        GridTableBase.__init__(self)</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">  140</a></span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a> = wx_grid</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a54f8af95c896e39514c04f4fe15b2edb">  141</a></span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a54f8af95c896e39514c04f4fe15b2edb">plugins</a> = plugins <span class="keywordflow">or</span> {}</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="comment"># we need to store the row length and column length to</span></div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        <span class="comment"># see if the table has changed size</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aced7039cbf795760dadb91a6562bdfb0">  144</a></span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aced7039cbf795760dadb91a6562bdfb0">_rows</a> = 0</div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a171c43e06d1736dd5eb314dee16b6576">  145</a></span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a171c43e06d1736dd5eb314dee16b6576">_cols</a> = 0</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#accc2963111c98b528791f589ef3697a0">  146</a></span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#accc2963111c98b528791f589ef3697a0">_row_label</a> = <span class="stringliteral">&quot;row %03d&quot;</span></div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="comment"># shortcuts to gui2py:</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">  149</a></span>&#160;    columns = property(<span class="keyword">lambda</span> self: self.wx_grid.obj.columns)</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">  150</a></span>&#160;    data = property(<span class="keyword">lambda</span> self: self.wx_grid.obj.items)</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aec1545dc706480437884fe5226e59458">  152</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aec1545dc706480437884fe5226e59458">GetNumberCols</a>(self):</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <span class="keywordflow">if</span> <span class="keywordflow">not</span> hasattr(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a>, <span class="stringliteral">&quot;obj&quot;</span>):</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;            <span class="keywordflow">return</span> 0  <span class="comment"># not initialized yet!</span></div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;            <span class="keywordflow">return</span> len(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>)</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a7dbcddc020afb70011a7754895a7988e">  158</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a7dbcddc020afb70011a7754895a7988e">GetNumberRows</a>(self):</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keywordflow">if</span> <span class="keywordflow">not</span> hasattr(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a>, <span class="stringliteral">&quot;obj&quot;</span>):</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            <span class="keywordflow">return</span> 0  <span class="comment"># not initialized yet! </span></div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;            <span class="keywordflow">return</span> len(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">data</a>)</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ae719e4dbb12a962079db8209e97d584b">  164</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ae719e4dbb12a962079db8209e97d584b">GetColLabelValue</a>(self, col):</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">return</span> self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col].text</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a3f1e6702d418906cb444039b7e6b7442">  167</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a3f1e6702d418906cb444039b7e6b7442">GetRowLabelValue</a>(self, row):</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        <span class="keywordflow">return</span> self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#accc2963111c98b528791f589ef3697a0">_row_label</a> % row</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a82d0ed1526c8ff2af4bd176f7251563a">  170</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a82d0ed1526c8ff2af4bd176f7251563a">GetValue</a>(self, row, col):</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        value = self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">data</a>[row].<a class="code" href="../../d9/d90/namespacegui_1_1component.html#a937836205f3a4daa11179df3fc58e3c9">get</a>(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col].name, <span class="stringliteral">&quot;&quot;</span>)</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        <span class="comment"># map choices internal value to strings using keys/index:</span></div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        choices = self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col]._choices</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        <span class="keywordflow">if</span> isinstance(choices, dict):</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;            value = choices.get(value, <span class="stringliteral">&quot;&quot;</span>)</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;        <span class="keywordflow">return</span> value</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        </div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef8a50d43a190a5b3828b123e46af74c">  179</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef8a50d43a190a5b3828b123e46af74c">GetRawValue</a>(self, row, col):</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        <span class="keywordflow">return</span> self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">data</a>[row].<a class="code" href="../../d9/d90/namespacegui_1_1component.html#a937836205f3a4daa11179df3fc58e3c9">get</a>(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col].name, <span class="stringliteral">&quot;&quot;</span>)</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div>
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#abf9ba197425ade671eb69696527bc580">  182</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#abf9ba197425ade671eb69696527bc580">SetValue</a>(self, row, col, value):</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="comment"># if using types, do not convert to str (already done if needed)</span></div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <span class="comment"># map choices values according keys/index:</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        choices = self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col]._choices</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        valu = value</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keywordflow">if</span> choices:</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;            <span class="keywordflow">if</span> isinstance(choices, dict):</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                choices = choices.items()</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                <span class="keywordflow">for</span> k, v <span class="keywordflow">in</span> choices:</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                    <span class="keywordflow">if</span> v == value:</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;                        value = k</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;                        <span class="keywordflow">break</span></div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;                <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;                    value = <span class="keywordtype">None</span></div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">data</a>[row][self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col].name] = value</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a6469a12e5c12c3d2019fe64900aae792">  198</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a6469a12e5c12c3d2019fe64900aae792">SetRawValue</a>(self, row, col, value):</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">data</a>[row][self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col].name] = value      <span class="comment"># TODO: = SetValue?</span></div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;</div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a731b2a0d8eaad9ba4fdacc962250b002">  201</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a731b2a0d8eaad9ba4fdacc962250b002">IsEmptyCell</a>(self, row, col):</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordflow">return</span> self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col].name <span class="keywordflow">not</span> <span class="keywordflow">in</span> self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">data</a>[row]</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="comment"># Called to determine the kind of editor/renderer to use by</span></div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="comment"># default, doesn&#39;t necessarily have to be the same type used</span></div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="comment"># default, doesn&#39;t necessarily have to be the same type used</span></div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="comment"># natively by the editor/renderer if they know how to convert.</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a58fee9ee2b3e4a740711ff4d2b60b91c">  208</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a58fee9ee2b3e4a740711ff4d2b60b91c">GetTypeName</a>(self, row, col):</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        column = self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col]</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        type_name = column._type</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordflow">if</span> column.format:</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;            type_name += <span class="stringliteral">&quot;:&quot;</span> + column._format</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        <span class="keywordflow">if</span> column._choices:</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;            <span class="keywordflow">if</span> isinstance(column._choices, dict):</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                choices = sorted(column._choices.values())</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;            <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;                choices = column._choices</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            type_name += <span class="stringliteral">&quot;:&quot;</span> + <span class="stringliteral">&quot;,&quot;</span>.join(choices)</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        <span class="keywordflow">return</span> type_name</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    </div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="comment"># Called to determine how the data can be fetched and stored by the</span></div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="comment"># editor and renderer.  This allows you to enforce some type-safety</span></div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="comment"># in the grid.</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a02d4786ebc777b5167b0208f1af2923d">  224</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a02d4786ebc777b5167b0208f1af2923d">CanGetValueAs</a>(self, row, col, type_name):</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        col_type = self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col]._type.split(<span class="stringliteral">&#39;:&#39;</span>)[0]</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <span class="keywordflow">if</span> col_type == type_name:</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">True</span></div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">False</span></div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a849167e652d184348c838402375f9ac3">  231</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a849167e652d184348c838402375f9ac3">CanSetValueAs</a>(self, row, col, type_name):</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        <span class="keywordflow">return</span> self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a02d4786ebc777b5167b0208f1af2923d">CanGetValueAs</a>(row, col, type_name)</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        </div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a8ceca9f18caabddff7a40bfbbdac7d55">  234</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a8ceca9f18caabddff7a40bfbbdac7d55">InsertCols</a>(self, *args, **kwargs):</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        wx.CallAfter(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">ResetView</a>, self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a>)</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">True</span></div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ac3d3c13db875b0edc129f545c8231194">  238</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ac3d3c13db875b0edc129f545c8231194">AppendCols</a>(self, *args, **kwargs):</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        wx.CallAfter(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">ResetView</a>, self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a>)</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">True</span></div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;</div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a9888cfe4f606659d74b1f0df16d797b0">  242</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a9888cfe4f606659d74b1f0df16d797b0">DeleteCols</a>(self, *args, **kwargs):</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;        wx.CallAfter(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">ResetView</a>, self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a>)</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">True</span></div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aedf892465769115e6b86997d2fd1a92c">  246</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aedf892465769115e6b86997d2fd1a92c">InsertRows</a>(self, *args, **kwargs):</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        wx.CallAfter(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">ResetView</a>, self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a>)</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">True</span></div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div>
<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aca17abc8a8ef61c82212b0ae4dd30a29">  250</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aca17abc8a8ef61c82212b0ae4dd30a29">AppendRows</a>(self, *args, **kwargs):</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        wx.CallAfter(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">ResetView</a>, self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a>)</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">True</span></div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ad3737b47992f7e42bf3789292c7219a7">  254</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ad3737b47992f7e42bf3789292c7219a7">DeleteRows</a>(self, *args, **kwargs):</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        wx.CallAfter(self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">ResetView</a>, self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">wx_grid</a>)</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">True</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">  258</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">ResetView</a>(self, grid):</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="stringliteral">&quot;Update the grid if rows and columns have been added or deleted&quot;</span></div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        grid.BeginBatch()</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;        <span class="keywordflow">for</span> current, new, delmsg, addmsg <span class="keywordflow">in</span> [</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;            (self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aced7039cbf795760dadb91a6562bdfb0">_rows</a>, self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a7dbcddc020afb70011a7754895a7988e">GetNumberRows</a>(), </div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;             gridlib.GRIDTABLE_NOTIFY_ROWS_DELETED, </div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;             gridlib.GRIDTABLE_NOTIFY_ROWS_APPENDED),</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;            (self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a171c43e06d1736dd5eb314dee16b6576">_cols</a>, self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aec1545dc706480437884fe5226e59458">GetNumberCols</a>(), </div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;             gridlib.GRIDTABLE_NOTIFY_COLS_DELETED,</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;             gridlib.GRIDTABLE_NOTIFY_COLS_APPENDED),</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        ]:</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;            <span class="keywordflow">if</span> new &lt; current:</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;                msg = gridlib.GridTableMessage(self,delmsg,new,current-new)</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;                grid.ProcessTableMessage(msg)</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;            <span class="keywordflow">elif</span> new &gt; current:</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;                msg = gridlib.GridTableMessage(self,addmsg,new-current)</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                grid.ProcessTableMessage(msg)</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;                self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb04002eecdd3330dd6e645fd1f84862">UpdateValues</a>(grid)</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        grid.EndBatch()</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aced7039cbf795760dadb91a6562bdfb0">_rows</a> = self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a7dbcddc020afb70011a7754895a7988e">GetNumberRows</a>()</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a171c43e06d1736dd5eb314dee16b6576">_cols</a> = self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aec1545dc706480437884fe5226e59458">GetNumberCols</a>()</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        <span class="comment"># update the column rendering plugins</span></div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a8f38eb56264218bd4100fef177b1c5a3">_updateColAttrs</a>(grid)</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="comment"># update the scrollbars and the displayed part of the grid</span></div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        grid.AdjustScrollbars()</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        grid.ForceRefresh()</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb04002eecdd3330dd6e645fd1f84862">  291</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb04002eecdd3330dd6e645fd1f84862">UpdateValues</a>(self, grid):</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="stringliteral">&quot;Update all displayed values&quot;</span></div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="comment"># This sends an event to the grid table to update all of the values</span></div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;        msg = gridlib.GridTableMessage(self, </div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                                    gridlib.GRIDTABLE_REQUEST_VIEW_GET_VALUES)</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        grid.ProcessTableMessage(msg)</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a8f38eb56264218bd4100fef177b1c5a3">  298</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a8f38eb56264218bd4100fef177b1c5a3">_updateColAttrs</a>(self, grid):</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;        <span class="stringliteral">&quot;update the column attributes to add the appropriate renderer&quot;</span></div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;        col = 0</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keywordflow">for</span> column <span class="keywordflow">in</span> self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>:</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;            attr = gridlib.GridCellAttr()</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;            <span class="keywordflow">if</span> <span class="keyword">False</span>:  <span class="comment"># column.readonly</span></div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                attr.SetReadOnly()</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;            <span class="keywordflow">if</span> <span class="keyword">False</span>:  <span class="comment"># column.renderer</span></div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                attr.SetRenderer(renderer)</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;            grid.SetColSize(col, column.width)</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;            grid.SetColAttr(col, attr)</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;            col += 1</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="comment">#grid.SetDefaultRowSize(renderer.rowSize)</span></div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ab3e025fecaecbb1dd957d761241541a9">  313</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ab3e025fecaecbb1dd957d761241541a9">SortColumn</a>(self, col):</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        <span class="stringliteral">&quot;col -&gt; sort the data based on the column indexed by col&quot;</span></div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        name = self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">columns</a>[col].name</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        _data = []</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        <span class="keywordflow">for</span> row <span class="keywordflow">in</span> self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">data</a>:</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;            rowname, entry = row</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;            _data.append((entry.get(name, <span class="keywordtype">None</span>), row))</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;        _data.sort()</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;        self.<a class="code" href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">data</a> = []</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <span class="keywordflow">for</span> sortvalue, row <span class="keywordflow">in</span> _data:</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;            self.data.append(row)</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;    <span class="comment"># end table manipulation code</span></div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="comment"># ----------------------------------------------------------</span></div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div>
<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html">  332</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html">GridColumn</a>(SubComponent):</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <span class="stringliteral">&quot;Grid sub-component to handle heading, align, width and props of columns&quot;</span></div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div>
<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a8ef557cc53f2d15ecc6ed419e67bb882">  335</a></span>&#160;    _created = <span class="keyword">False</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a40aff856443c68e0f1e440cb0cf279e5">  336</a></span>&#160;    _registry = registry.MISC</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    </div>
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a0f81ebad01ef259ece602fcd1eb522a9">  338</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a0f81ebad01ef259ece602fcd1eb522a9">set_parent</a>(self, new_parent, init=False):</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <span class="stringliteral">&quot;Associate the header to the control (it could be recreated)&quot;</span></div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a8ef557cc53f2d15ecc6ed419e67bb882">_created</a> = <span class="keyword">False</span></div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        SubComponent.set_parent(self, new_parent, init)</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <span class="comment"># if index not given, append the column at the last position:</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#aca446c6a65476971a82a989a9f2f8a64">  343</a></span>&#160;        <span class="keywordflow">if</span> self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ad25f2b19cfa01e40e77450a2f87faeca">index</a> == -1 <span class="keywordflow">or</span> self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ad25f2b19cfa01e40e77450a2f87faeca">index</a> &gt;= len(self._parent.columns):</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;            self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ad25f2b19cfa01e40e77450a2f87faeca">index</a> = len(self._parent.columns) - 1</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        <span class="comment"># insert the column in the listview:</span></div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;        self._parent.wx_obj.AppendCols(1)</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        <span class="comment">#self._parent.wx_obj.SetColLabelValue(self.index, self.text)</span></div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="comment">#self.SetColLabel(self.index, self.align)</span></div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        <span class="comment">#self._parent.wx_obj.SetColSize(self.index, self.width)</span></div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a8ef557cc53f2d15ecc6ed419e67bb882">_created</a> = <span class="keyword">True</span>    <span class="comment"># enable setattr hook</span></div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;</div>
<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a6dbbeee2c94980129d22cbe312a584f7">  352</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a6dbbeee2c94980129d22cbe312a584f7">destroy</a>(self):</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        self._parent.wx_obj.DeleteCols(self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ad25f2b19cfa01e40e77450a2f87faeca">index</a>, 1)</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;        <span class="comment"># reindex (maybe this should be moved to GridView)</span></div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <span class="keywordflow">for</span> column <span class="keywordflow">in</span> self._parent.columns[self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ad25f2b19cfa01e40e77450a2f87faeca">index</a>+1:]:</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;            column.index = column.index - 1</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        del self._parent[self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ade7cb740d35dbe5f05c7484621ab6671">name</a>]</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        <span class="comment">#SubComponent.destroy(self)</span></div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div>
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a5b81ef60dbd2091f92dc9a3c44d2834e">  360</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a5b81ef60dbd2091f92dc9a3c44d2834e">__setattr__</a>(self, name, value):</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        <span class="stringliteral">&quot;Hook to update the column information in wx&quot;</span></div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        object.__setattr__(self, name, value)</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <span class="keywordflow">if</span> name <span class="keywordflow">not</span> <span class="keywordflow">in</span> (<span class="stringliteral">&quot;_parent&quot;</span>, <span class="stringliteral">&quot;_created&quot;</span>) <span class="keywordflow">and</span> self.<a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a8ef557cc53f2d15ecc6ed419e67bb882">_created</a>:</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;            self._parent.wx_obj.Refresh()</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;</div>
<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ade7cb740d35dbe5f05c7484621ab6671">  366</a></span>&#160;    name = InitSpec(optional=<span class="keyword">False</span>, default=<span class="stringliteral">&quot;&quot;</span>, _name=<span class="stringliteral">&quot;_name&quot;</span>, type=<span class="stringliteral">&#39;string&#39;</span>)</div>
<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a5bd8d475775ffa535a5774d3cf08e64f">  367</a></span>&#160;    text = InitSpec(optional=<span class="keyword">False</span>, default=<span class="stringliteral">&quot;&quot;</span>, _name=<span class="stringliteral">&quot;_text&quot;</span>, type=<span class="stringliteral">&#39;string&#39;</span>)</div>
<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ad25f2b19cfa01e40e77450a2f87faeca">  368</a></span>&#160;    index = InitSpec(optional=<span class="keyword">False</span>, default=-1, _name=<span class="stringliteral">&quot;_index&quot;</span>, type=<span class="stringliteral">&#39;integer&#39;</span>)</div>
<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a1cc0981a5db76ed43aacf55167c4a31b">  369</a></span>&#160;    align = InitSpec(mapping={<span class="stringliteral">&#39;left&#39;</span>: wx.ALIGN_LEFT,</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;                              <span class="stringliteral">&#39;center&#39;</span>: wx.ALIGN_CENTRE,</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;                              <span class="stringliteral">&#39;right&#39;</span>: wx.ALIGN_RIGHT}, </div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;                     default=<span class="stringliteral">&#39;left&#39;</span>, _name=<span class="stringliteral">&quot;_align&quot;</span>, type=<span class="stringliteral">&quot;enum&quot;</span>,</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;                     doc=<span class="stringliteral">&quot;Grid Column Horizontal Alignment&quot;</span>)</div>
<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a10b920f7e372f2290602e7bce7f37ca0">  374</a></span>&#160;    width = InitSpec(default=wx.LIST_AUTOSIZE, _name=<span class="stringliteral">&quot;_width&quot;</span>, type=<span class="stringliteral">&quot;integer&quot;</span>,</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;                     doc=<span class="stringliteral">&quot;Column width (default=autosize)&quot;</span>)</div>
<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#aa8d632529bac8a48219423c5a9dabed1">  376</a></span>&#160;    represent = InitSpec(default=<span class="keyword">lambda</span> v: v, _name=<span class="stringliteral">&quot;_represent&quot;</span>, type=<span class="stringliteral">&#39;string&#39;</span>,</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;                     doc=<span class="stringliteral">&quot;function to returns a representation for the subitem&quot;</span>)</div>
<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ae733c4b8b982647758dbec2366719700">  378</a></span>&#160;    type = InitSpec(mapping={<span class="stringliteral">&#39;string&#39;</span>: gridlib.GRID_VALUE_STRING,</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;                             <span class="stringliteral">&#39;text&#39;</span>: gridlib.GRID_VALUE_TEXT,</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;                             <span class="stringliteral">&#39;number&#39;</span>: gridlib.GRID_VALUE_NUMBER,</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;                             <span class="stringliteral">&#39;float&#39;</span>: gridlib.GRID_VALUE_FLOAT,  <span class="comment"># double?</span></div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;                             <span class="stringliteral">&#39;long&#39;</span>: gridlib.GRID_VALUE_LONG,</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;                             <span class="stringliteral">&#39;bool&#39;</span>: gridlib.GRID_VALUE_BOOL,</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;                             <span class="stringliteral">&#39;choice&#39;</span>: gridlib.GRID_VALUE_CHOICE,</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;                             <span class="stringliteral">&#39;choiceint&#39;</span>: gridlib.GRID_VALUE_CHOICEINT,</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;                             <span class="stringliteral">&#39;datetime&#39;</span>: gridlib.GRID_VALUE_DATETIME,</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;                             <span class="stringliteral">&#39;combo&#39;</span>: <span class="stringliteral">&#39;combo&#39;</span>,</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;                             }, </div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;                     default=<span class="stringliteral">&#39;string&#39;</span>, _name=<span class="stringliteral">&quot;_type&quot;</span>, type=<span class="stringliteral">&quot;edit_enum&quot;</span>,</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;                     doc=<span class="stringliteral">&quot;Type of value of a cell, use &#39;:&#39; for additional &quot;</span></div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;                         <span class="stringliteral">&quot;parameters: &#39;choice:all,MSW,GTK,MAC&#39; or &#39;double:6,2&#39;&quot;</span></div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;                     )</div>
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ac9bda7c39a6f3e6ef47827ccd5e32410">  393</a></span>&#160;    format = InitSpec(_name=<span class="stringliteral">&quot;_format&quot;</span>, type=<span class="stringliteral">&#39;string&#39;</span>,</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;                 doc=<span class="stringliteral">&quot;string additional parameter for type (width,precision)&quot;</span>)</div>
<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ae7fdef2043e7db8919b66f615b03a6ad">  395</a></span>&#160;    choices = InitSpec(type=<span class="stringliteral">&quot;array&quot;</span>, _name=<span class="stringliteral">&quot;_choices&quot;</span>, </div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;                     doc=<span class="stringliteral">&quot;list or dict for choice type&quot;</span>)</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    </div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;</div>
<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html">  400</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html">GridModel</a>(list):</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <span class="stringliteral">&quot;GridView rows model (each element should be a dict-like {col_name: value})&quot;</span></div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    </div>
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#ae0fc78a27cd017f93f6a662995607b2e">  403</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#ae0fc78a27cd017f93f6a662995607b2e">__init__</a>(self, _grid_view, data):</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        list.__init__(self)</div>
<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a6bbb5efa913524d9cf46f8e7e8770260">  405</a></span>&#160;        self.<a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a6bbb5efa913524d9cf46f8e7e8770260">_grid_view</a> = _grid_view</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        self.<a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a9211583a87a01a4513fca91c2eddf5cc">clear</a>()</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        <span class="keywordflow">for</span> it <span class="keywordflow">in</span> data:</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;            self.<a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a363d8c78860b4afb91cad46e0a903403">append</a>(it)</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;</div>
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#abb49b3208ec8c4a37fa0a05672106671">  410</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#abb49b3208ec8c4a37fa0a05672106671">insert</a>(self, pos, values):</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        <span class="stringliteral">&quot;Insert a number of rows into the grid (and associated table)&quot;</span></div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        <span class="keywordflow">if</span> isinstance(values, dict):</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;            row = <a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">GridRow</a>(self, **values)</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;            row = <a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">GridRow</a>(self, *values)</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        list.insert(self, pos, row)</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        self._grid_view.wx_obj.InsertRows(pos, numRows=1)</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;</div>
<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a363d8c78860b4afb91cad46e0a903403">  419</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a363d8c78860b4afb91cad46e0a903403">append</a>(self, values):</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;        <span class="stringliteral">&quot;Insert a number of rows into the grid (and associated table)&quot;</span></div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        <span class="keywordflow">if</span> isinstance(values, dict):</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;            row = <a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">GridRow</a>(self, **values)</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;            row = <a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">GridRow</a>(self, *values)</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;        list.append(self, row)</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        self._grid_view.wx_obj.AppendRows(numRows=1)</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        </div>
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a1f93c53e6529292e80f3ea3862e45e02">  428</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a1f93c53e6529292e80f3ea3862e45e02">__setitem__</a>(self, pos, value):</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        <span class="keywordflow">if</span> isinstance(values, dict):</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;            row = <a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">GridRow</a>(self, **values)</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;            row = <a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">GridRow</a>(self, *value)</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        list.__setitem__(self, pos, row)</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="comment"># update the grid (just the row affected):</span></div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        self.<a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a2dc44c1397c67d8fca80cf4f5630ca2a">_refresh</a>(pos)</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;</div>
<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a2dc44c1397c67d8fca80cf4f5630ca2a">  437</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a2dc44c1397c67d8fca80cf4f5630ca2a">_refresh</a>(self, pos, col=None):</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        <span class="comment"># TODO: see if there is a specialized message to send to the table</span></div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;        <span class="comment"># NOTE: if couses flicker, both calls should be enclosed in a grid batch</span></div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        self._grid_view.wx_obj.DeleteRows(pos, numRows=1)</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        self._grid_view.wx_obj.InsertRows(pos, numRows=1)</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;</div>
<div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#ab557cd393c24128f114ff2b62bfa7346">  443</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#ab557cd393c24128f114ff2b62bfa7346">__delitem__</a>(self, pos):</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        <span class="stringliteral">&quot;Delete row from position pos&quot;</span></div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        list.__delitem__(self, pos)</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        self._grid_view.wx_obj.DeleteRows(pos, numRows=1)</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div>
<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a9211583a87a01a4513fca91c2eddf5cc">  448</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a9211583a87a01a4513fca91c2eddf5cc">clear</a>(self):</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        <span class="stringliteral">&quot;Remove all rows and reset internal structures&quot;</span></div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        <span class="comment">## list has no clear ... remove items in reverse order</span></div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;        <span class="keywordflow">for</span> i <span class="keywordflow">in</span> range(len(self)-1, -1, -1):</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;            del self[i]</div>
<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#afdb27c617ed8b2e503e5808206ab8912">  453</a></span>&#160;        self.<a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#afdb27c617ed8b2e503e5808206ab8912">_key</a> = 0</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        <span class="keywordflow">if</span> hasattr(self.<a class="code" href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a6bbb5efa913524d9cf46f8e7e8770260">_grid_view</a>, <span class="stringliteral">&quot;wx_obj&quot;</span>):</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;            self._grid_view.wx_obj.ClearGrid()</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;</div>
<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">  458</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">GridRow</a>(dict):</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    <span class="stringliteral">&quot;keys are column names, values are cell values&quot;</span></div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;</div>
<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a72cb90406aa2393956ae8e990b65c037">  461</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a72cb90406aa2393956ae8e990b65c037">__init__</a>(self, grid_model, *args, **kwargs):</div>
<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a76dbe32a4f8cbc15357b768826f2d9ce">  462</a></span>&#160;        self.<a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a76dbe32a4f8cbc15357b768826f2d9ce">_grid_model</a> = grid_model</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        <span class="comment"># convert items to a key:value map (column names are keys)</span></div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        <span class="keywordflow">if</span> args:</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;            columns = self._grid_model._grid_view.columns</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;            <span class="keywordflow">for</span> i, arg <span class="keywordflow">in</span> enumerate(args):</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;                kwargs[columns[i].name] = arg                </div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        dict.__init__(self, **kwargs)</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;</div>
<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#af8b4e44e6ccb375a54eb8cb1d7d2c764">  470</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#af8b4e44e6ccb375a54eb8cb1d7d2c764">__setitem__</a>(self, key, value):</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        <span class="comment"># if key is a column index, get the actual column name to look up:</span></div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        <span class="keywordflow">if</span> <span class="keywordflow">not</span> isinstance(key, basestring):</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;            col = key</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;            column = self._grid_model._grid_view.columns[key]</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;            key = column.name</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;            <span class="keywordflow">for</span> i, column <span class="keywordflow">in</span> enumerate(self._grid_model._grid_view.columns):</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;                <span class="keywordflow">if</span> column.name == key:</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;                    col = i</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;                    <span class="keywordflow">break</span></div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;            <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;                col = <span class="keywordtype">None</span>  <span class="comment"># raise an exception?</span></div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        <span class="comment"># store the value and notify the view to refresh the item</span></div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        dict.__setitem__(self, key, value)</div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <span class="keywordflow">if</span> col <span class="keywordflow">is</span> <span class="keywordflow">not</span> <span class="keywordtype">None</span> <span class="keywordflow">and</span> self[key] != value:</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;            pos = self.<a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a81ddd2d438031c1069f99a9ce6a6a111">index</a></div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;            <span class="comment"># refresh the value (usefull if value setted programatically)</span></div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;            self._grid_model._refresh(pos, col)</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;</div>
<div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#aeb8160fe731641aa797be02f30d4f5cd">  490</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#aeb8160fe731641aa797be02f30d4f5cd">__getitem__</a>(self, key):</div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        <span class="comment"># if key is a column index, get the actual column name to look up:</span></div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        <span class="keywordflow">if</span> <span class="keywordflow">not</span> isinstance(key, basestring):</div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;            key = self._grid_model._grid_view.columns[key].name</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        <span class="comment"># return the data for the given column, None if nothing there</span></div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        <span class="keywordflow">return</span> dict.get(self, key)</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;    @property</div>
<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a81ddd2d438031c1069f99a9ce6a6a111">  498</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a81ddd2d438031c1069f99a9ce6a6a111">index</a>(self):</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        <span class="stringliteral">&quot;Get the actual position (can vary due insertion/deletions and sorting)&quot;</span></div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        <span class="keywordflow">return</span> self._grid_model.index(self)</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;</div>
<div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a2f3d5dea451595555f72f5cc05f6d053">  502</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a2f3d5dea451595555f72f5cc05f6d053">_is_selected</a>(self):</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keywordflow">return</span> self._grid_model._grid_view.wx_obj.IsInSelection(self.<a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a81ddd2d438031c1069f99a9ce6a6a111">index</a>, 0)</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    </div>
<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a95d7630c1ab440ccf39c3c8afc643351">  505</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a95d7630c1ab440ccf39c3c8afc643351">_select</a>(self, on):</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        <span class="keywordflow">if</span> on:</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;            self._grid_model._grid_view.wx_obj.SelectRow(self.<a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a81ddd2d438031c1069f99a9ce6a6a111">index</a>, <span class="keyword">True</span>)</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;            <span class="comment"># this clear all the selection, TODO: clear just this row</span></div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;            self._grid_model._grid_view.wx_obj.ClearSelection()</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div>
<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a21929c5f8b823bf66e21c9a743f7fe41">  512</a></span>&#160;    selected = property(_is_selected, _select)</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;</div>
<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a18ce9874e9185192f80e6e9520e995eb">  514</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a18ce9874e9185192f80e6e9520e995eb">ensure_visible</a>(self):</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        self._grid_model._grid_view.wx_obj.EnsureVisible(self.<a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a81ddd2d438031c1069f99a9ce6a6a111">index</a>)</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        </div>
<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a4b916b99b3458dc2f08a2470525bde91">  517</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a4b916b99b3458dc2f08a2470525bde91">focus</a>(self):</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        self._grid_model._grid_view.wx_obj.Focus(self.<a class="code" href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a81ddd2d438031c1069f99a9ce6a6a111">index</a>)</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;</div>
<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html">  521</a></span>&#160;<span class="keyword">class </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html">ComboCellEditor</a>(wx.grid.PyGridCellEditor):</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    <span class="stringliteral">&quot;The sample custom editor is a ComboBox editor.&quot;</span></div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;</div>
<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#acede90a2f84f3f3b9667e64a2e49da02">  524</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#acede90a2f84f3f3b9667e64a2e49da02">__init__</a>(self, wx_grid):</div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        wx.grid.PyGridCellEditor.__init__(self)</div>
<div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#af96d2550eeba453d324a49957c5b06b2">  526</a></span>&#160;        self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#af96d2550eeba453d324a49957c5b06b2">wx_grid</a> = wx_grid</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        </div>
<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a02d0e93cb1c0a64b77584b745e87f0e2">  528</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a02d0e93cb1c0a64b77584b745e87f0e2">Create</a>(self, parent, id, evtHandler):</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        <span class="stringliteral">&quot;Called to create the control, which must derive from wxControl.&quot;</span>        </div>
<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#aa8dc484cdc517811b1b7393e00e323f5">  530</a></span>&#160;        self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#aa8dc484cdc517811b1b7393e00e323f5">_tc</a> = wx.ComboBox(parent, id, <span class="stringliteral">&quot;&quot;</span>, (100, 50))</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        self.SetControl(self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#aa8dc484cdc517811b1b7393e00e323f5">_tc</a>)</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        <span class="comment"># pushing a different event handler instead evtHandler:</span></div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        self._tc.PushEventHandler(wx.EvtHandler())</div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        self._tc.Bind(wx.EVT_COMBOBOX, self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a199a84e3a27147974ffe932b4cc2c3ee">OnChange</a>) </div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;</div>
<div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a199a84e3a27147974ffe932b4cc2c3ee">  536</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a199a84e3a27147974ffe932b4cc2c3ee">OnChange</a>(self, event):</div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        wx.CallAfter(self.wx_grid.DisableCellEditControl) </div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        </div>
<div class="line"><a name="l00539"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#adae2e18973709734aeae837dd3ad8feb">  539</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#adae2e18973709734aeae837dd3ad8feb">SetSize</a>(self, rect):</div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        <span class="stringliteral">&quot;Called to position/size the edit control within the cell rectangle.&quot;</span></div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        self._tc.SetDimensions(rect.x, rect.y, rect.width+2, rect.height+2,</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;                               wx.SIZE_ALLOW_MINUS_ONE)</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;</div>
<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a25499840cdbef32ef2f196860318787c">  544</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a25499840cdbef32ef2f196860318787c">Show</a>(self, show, attr):</div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="stringliteral">&quot;Show or hide the edit control.  You can use the attr (if not None)&quot;</span></div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        self.base_Show(show, attr)</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;</div>
<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a39b3fc3bae749e44c80543f1db3abd1c">  548</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a39b3fc3bae749e44c80543f1db3abd1c">PaintBackground</a>(self, dc, rect, attr):</div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;        <span class="stringliteral">&quot;Draws the part of the cell not occupied by the edit control&quot;</span></div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;</div>
<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a069fed0de69c809b134e5916ba59d416">  551</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a069fed0de69c809b134e5916ba59d416">BeginEdit</a>(self, row, col, grid):</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        <span class="stringliteral">&quot;Fetch the value from the table and prepare the edit control&quot;</span></div>
<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">  553</a></span>&#160;        self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">startValue</a> = grid.GetTable().GetValue(row, col)</div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        choices = grid.GetTable().columns[col]._choices</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;        self._tc.Clear()</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        self._tc.AppendItems(choices)</div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;        self._tc.SetStringSelection(self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">startValue</a>)</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;        self._tc.SetFocus()</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;</div>
<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a65362a0f78bc9b9d23ddabd13d731cb6">  560</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a65362a0f78bc9b9d23ddabd13d731cb6">EndEdit</a>(self, row, col, grid, val=None):</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        <span class="stringliteral">&quot;Complete the editing of the current cell. Returns True if changed&quot;</span></div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;        changed = <span class="keyword">False</span></div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;        val = self._tc.GetStringSelection()</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;        <span class="keywordflow">print</span> <span class="stringliteral">&quot;val&quot;</span>, val, row, col, self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">startValue</a></div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        <span class="keywordflow">if</span> val != self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">startValue</a>:</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;            changed = <span class="keyword">True</span></div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;            grid.GetTable().SetValue(row, col, val) <span class="comment"># update the table</span></div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">startValue</a> = <span class="stringliteral">&#39;&#39;</span></div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        self._tc.SetStringSelection(<span class="stringliteral">&#39;&#39;</span>)</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="keywordflow">return</span> changed</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;</div>
<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a1d9e168978bcffb9c7808877d909aa78">  572</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a1d9e168978bcffb9c7808877d909aa78">ApplyEdit</a>(self, row, col, grid):</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        <span class="stringliteral">&quot;Save the value of the control into the grid or grid table&quot;</span></div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;        val = self._tc.GetValue()</div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        grid.GetTable().SetValue(row, col, val) <span class="comment"># update the table</span></div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;        self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">startValue</a> = <span class="stringliteral">&#39;&#39;</span></div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        self._tc.SetValue(<span class="stringliteral">&#39;&#39;</span>)</div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;</div>
<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#ae03acbf5ef4496cd63de436865c1ff57">  579</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#ae03acbf5ef4496cd63de436865c1ff57">Reset</a>(self):</div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;        <span class="stringliteral">&quot;Reset the value in the control back to its starting value&quot;</span></div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        self._tc.SetStringSelection(self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">startValue</a>)</div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;        <span class="comment">#self._tc.SetInsertionPointEnd()</span></div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;</div>
<div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a20026795aee619c4c6cc121833046e8a">  584</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a20026795aee619c4c6cc121833046e8a">IsAcceptedKey</a>(self, evt):</div>
<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        <span class="stringliteral">&quot;Return True to allow the given key to start editing&quot;</span></div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;        <span class="comment">## Oops, there&#39;s a bug here, we&#39;ll have to do it ourself..</span></div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        <span class="comment">##return self.base_IsAcceptedKey(evt)</span></div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        <span class="keywordflow">return</span> (<span class="keywordflow">not</span> (evt.ControlDown() <span class="keywordflow">or</span> evt.AltDown()) <span class="keywordflow">and</span></div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;                evt.GetKeyCode() != wx.WXK_SHIFT)</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;</div>
<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a448781f8024cfa6309e1a00edf933714">  591</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a448781f8024cfa6309e1a00edf933714">StartingKey</a>(self, evt):</div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="stringliteral">&quot;This will be called to let the editor do something with the first key&quot;</span></div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        key = evt.GetKeyCode()</div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        ch = <span class="keywordtype">None</span></div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        <span class="keywordflow">if</span> key <span class="keywordflow">in</span> [wx.WXK_NUMPAD0, wx.WXK_NUMPAD1, wx.WXK_NUMPAD2, wx.WXK_NUMPAD3, wx.WXK_NUMPAD4,</div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;                   wx.WXK_NUMPAD5, wx.WXK_NUMPAD6, wx.WXK_NUMPAD7, wx.WXK_NUMPAD8, wx.WXK_NUMPAD9]:</div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;            ch = ch = chr(ord(<span class="stringliteral">&#39;0&#39;</span>) + key - wx.WXK_NUMPAD0)</div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        <span class="keywordflow">elif</span> key &lt; 256 <span class="keywordflow">and</span> key &gt;= 0 <span class="keywordflow">and</span> chr(key) <span class="keywordflow">in</span> string.printable:</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;            ch = chr(key)</div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;            <span class="keywordflow">if</span> <span class="keywordflow">not</span> evt.ShiftDown():</div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;                ch = ch.lower()</div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        <span class="keywordflow">if</span> ch <span class="keywordflow">is</span> <span class="keywordflow">not</span> <span class="keywordtype">None</span>:</div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;            self._tc.SetStringSelection(ch)</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        <span class="keywordflow">else</span>:</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;            evt.Skip()</div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;</div>
<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a70aa6bdf0e01270c3847077084a41bd1">  607</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a70aa6bdf0e01270c3847077084a41bd1">StartingClick</a>(self):</div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;        <span class="stringliteral">&quot;Called to allow the editor to simulate the click on the control&quot;</span></div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;</div>
<div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a33c674f2e4ba5585d361212707685a00">  610</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a33c674f2e4ba5585d361212707685a00">Destroy</a>(self):</div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;        <span class="stringliteral">&quot;final cleanup&quot;</span></div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;        self.base_Destroy()</div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;</div>
<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#aab55211c451a58d49e8356c0bab18057">  614</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#aab55211c451a58d49e8356c0bab18057">Clone</a>(self):</div>
<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <span class="stringliteral">&quot;Create a new object which is the copy of this one&quot;</span></div>
<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html">ComboCellEditor</a>(self.<a class="code" href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#af96d2550eeba453d324a49957c5b06b2">wx_grid</a>)</div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="comment"># update metadata for the add context menu at the designer:</span></div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;GridView._meta.valid_children = [GridColumn, ] </div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;</div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="keywordflow">if</span> __name__ == <span class="stringliteral">&quot;__main__&quot;</span>:</div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <span class="keyword">import</span> sys</div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    <span class="comment"># basic test until unit_test</span></div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keyword">import</span> gui</div>
<div class="line"><a name="l00628"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#a45a5cfce5006ba412ee40eed3907d858">  628</a></span>&#160;    app = wx.App(redirect=<span class="keyword">False</span>)    </div>
<div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#a21fde8cb9968efc0abdbd8dcd6129bb8">  629</a></span>&#160;    w = gui.Window(title=<span class="stringliteral">&quot;hello world&quot;</span>, name=<span class="stringliteral">&quot;frmTest&quot;</span>, tool_window=<span class="keyword">False</span>, </div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;               resizable=<span class="keyword">True</span>, visible=<span class="keyword">False</span>, pos=(180, 0))</div>
<div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#aed2f8124a1d7eaf2133a04624edad77c">  631</a></span>&#160;    gv = <a class="code" href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html">GridView</a>(w, name=<span class="stringliteral">&quot;grid1&quot;</span>, </div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;                  <span class="comment">#multiselect=&quot;--multiselect&quot; in sys.argv,</span></div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;                  )</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;</div>
<div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#af4013f06e47431732e9560e654b9c337">  635</a></span>&#160;    ch1 = <a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html">GridColumn</a>(gv, name=<span class="stringliteral">&quot;col1&quot;</span>, text=<span class="stringliteral">&quot;Col 1&quot;</span>, align=<span class="stringliteral">&quot;left&quot;</span>, width=100)</div>
<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#a9ea7f2d6a99217c18020881fc2ff8070">  636</a></span>&#160;    ch2 = <a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html">GridColumn</a>(gv, name=<span class="stringliteral">&quot;col2&quot;</span>, text=<span class="stringliteral">&quot;Col 2&quot;</span>, align=<span class="stringliteral">&quot;center&quot;</span>)</div>
<div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#a694b965ae1c5595dcd92e402fa28a309">  637</a></span>&#160;    ch3 = <a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html">GridColumn</a>(gv, name=<span class="stringliteral">&quot;col3&quot;</span>, text=<span class="stringliteral">&quot;Col 3&quot;</span>, align=<span class="stringliteral">&quot;right&quot;</span>, width=100, type=<span class="stringliteral">&quot;number&quot;</span>)</div>
<div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#a86e8712e20f35979f5b35d8572500277">  638</a></span>&#160;    ch4 = <a class="code" href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html">GridColumn</a>(gv, name=<span class="stringliteral">&quot;col4&quot;</span>, text=<span class="stringliteral">&quot;Col 4&quot;</span>, align=<span class="stringliteral">&quot;right&quot;</span>, width=100, type=<span class="stringliteral">&quot;float&quot;</span>)</div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <span class="comment">#ch1.represent = ch2.represent = lambda value: str(value)</span></div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    <span class="comment">#ch3.represent = lambda value: &quot;%0.2f&quot; % value</span></div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;</div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    gv.items = [[1, 2, 3, 3.141516], [<span class="stringliteral">&#39;4&#39;</span>, 5, 6.], [<span class="stringliteral">&#39;7&#39;</span>, 8, 9]]</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    </div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    <span class="comment">#lv.insert_items([[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]])</span></div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <span class="comment">#lv.append(&quot;d&quot;)</span></div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    <span class="comment">#lv.append(&quot;e&quot;, &quot;datum1&quot;)</span></div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <span class="comment">#lv.data_selection = &quot;datum2&quot;</span></div>
<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    <span class="comment"># assign some event handlers:</span></div>
<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    <span class="comment">#lv.onitemselected = &quot;&quot;</span></div>
<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    w.show()</div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    </div>
<div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#af98fe99e73d22e5c2fc69e7670bafc48">  652</a></span>&#160;    <span class="keyword">def </span><a class="code" href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#af98fe99e73d22e5c2fc69e7670bafc48">update</a>(p):</div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;        <span class="keywordflow">if</span> p == 1:</div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;            gv.items[0][0] = <span class="stringliteral">&quot;hola!&quot;</span>            <span class="comment"># change a cell programatically</span></div>
<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;            gv.items.insert(0, [10, 11, 12.])   <span class="comment"># insert a row at first pos</span></div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;            gv.items[2] = [99, 98, 97, 96.543]  <span class="comment"># replace a complete row</span></div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;            del gv.items[-1]                    <span class="comment"># delete the last row</span></div>
<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;        <span class="keywordflow">if</span> p == 2:</div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;            gv.items[0][3] = 1/2.0</div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;        <span class="keywordflow">print</span> <span class="stringliteral">&quot;updated!&quot;</span></div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    wx.CallLater(2000, update, 1)</div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    wx.CallLater(3000, update, 2)</div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        </div>
<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;    <span class="comment">#import wx.lib.inspection</span></div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    <span class="comment">#wx.lib.inspection.InspectionTool().Show()</span></div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    </div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    <span class="comment">#  basic tests</span></div>
<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    <span class="comment">##assert lv.get_count() == 4</span></div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    <span class="comment">##lv.items(1).selected = True</span></div>
<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;    <span class="comment"># check that internal selection match:</span></div>
<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    <span class="comment">##assert lv.get_selected_items() == [{&#39;col2&#39;: &#39;5&#39;, &#39;col3&#39;: 6, &#39;col1&#39;: &#39;4&#39;}]</span></div>
<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    </div>
<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;    <span class="comment">##if &#39;--virtual&#39; in sys.argv:</span></div>
<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    <span class="comment">##    lv.virtual = True</span></div>
<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="comment">##    #lv.ongetitemdata = lambda item, col: &quot;row %d, col %d&quot; % (item, col)</span></div>
<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;    <span class="comment">##    lv.item_count = 10000000</span></div>
<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;    </div>
<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;    <span class="comment">##lv.delete(0)</span></div>
<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;</div>
<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    <span class="comment"># basic test of item model</span></div>
<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    <span class="comment">##lv.items(-1)[&#39;col3&#39;] = &quot;column 3!&quot;</span></div>
<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    <span class="comment">##assert lv.items(-1)[2] == &quot;column 3!&quot;</span></div>
<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;    <span class="comment">##assert lv.items(2)[2] == &quot;column 3!&quot;</span></div>
<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    </div>
<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    <span class="comment">##lv.items[2].selected = True</span></div>
<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    <span class="comment">##lv.items[3].ensure_visible()</span></div>
<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    <span class="comment">##lv.items[3].focus()</span></div>
<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    </div>
<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    <span class="comment">##ch1.text = &quot;Hello!&quot;</span></div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;    <span class="comment">##ch2.align = &quot;center&quot;</span></div>
<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;</div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <span class="comment">##lv.insert_items([[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]], 0)       # add as first item</span></div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    <span class="comment">##lv.insert_items([[&#39;x&#39;, &#39;y&#39;, &#39;z&#39;]], -1)      # add as last item</span></div>
<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    <span class="comment">##assert lv.items(0)[0] == &quot;a&quot;</span></div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="comment">##assert lv.items(len(lv.items)-1)[0] == &quot;x&quot;</span></div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    </div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    <span class="comment"># test PyData keys:</span></div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="comment">##lv.items[&#39;key&#39;] = [99, 98, 97]</span></div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    <span class="comment">##assert lv.items[&#39;key&#39;] == {&#39;col2&#39;: 98, &#39;col3&#39;: 97, &#39;col1&#39;: 99}</span></div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    </div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="keyword">from</span> <a class="code" href="../../d4/d72/namespacegui_1_1tools_1_1inspector.html">gui.tools.inspector</a> <span class="keyword">import</span> InspectorTool</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    <a class="code" href="../../df/da2/classgui_1_1tools_1_1inspector_1_1InspectorTool.html">InspectorTool</a>().show(w)</div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    app.MainLoop()</div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_aa8dc484cdc517811b1b7393e00e323f5"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#aa8dc484cdc517811b1b7393e00e323f5">gui.controls.gridview.ComboCellEditor._tc</a></div><div class="ttdeci">_tc</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00530">gridview.py:530</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridView_html"><div class="ttname"><a href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html">gui.controls.gridview.GridView</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00049">gridview.py:49</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html">gui.controls.gridview.GridTable</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00133">gridview.py:133</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1wx__Grid_html"><div class="ttname"><a href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html">gui.controls.gridview.wx_Grid</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00024">gridview.py:24</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a7dbcddc020afb70011a7754895a7988e"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a7dbcddc020afb70011a7754895a7988e">gui.controls.gridview.GridTable.GetNumberRows</a></div><div class="ttdeci">def GetNumberRows</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00158">gridview.py:158</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_abf9ba197425ade671eb69696527bc580"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#abf9ba197425ade671eb69696527bc580">gui.controls.gridview.GridTable.SetValue</a></div><div class="ttdeci">def SetValue</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00182">gridview.py:182</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridView_html_af45f76ef84e4f908dd8341bb4694b0bf"><div class="ttname"><a href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#af45f76ef84e4f908dd8341bb4694b0bf">gui.controls.gridview.GridView._get_column_headings</a></div><div class="ttdeci">def _get_column_headings</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00068">gridview.py:68</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridView_html_a1d392aa368d3df15e35a67ce1df22ef6"><div class="ttname"><a href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a1d392aa368d3df15e35a67ce1df22ef6">gui.controls.gridview.GridView._items</a></div><div class="ttdeci">_items</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00064">gridview.py:64</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_aced7039cbf795760dadb91a6562bdfb0"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aced7039cbf795760dadb91a6562bdfb0">gui.controls.gridview.GridTable._rows</a></div><div class="ttdeci">_rows</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00144">gridview.py:144</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a069fed0de69c809b134e5916ba59d416"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a069fed0de69c809b134e5916ba59d416">gui.controls.gridview.ComboCellEditor.BeginEdit</a></div><div class="ttdeci">def BeginEdit</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00551">gridview.py:551</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a2ef9cbcec9a6099dfab70cd071cecbc8"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a2ef9cbcec9a6099dfab70cd071cecbc8">gui.controls.gridview.ComboCellEditor.startValue</a></div><div class="ttdeci">startValue</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00553">gridview.py:553</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a199a84e3a27147974ffe932b4cc2c3ee"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a199a84e3a27147974ffe932b4cc2c3ee">gui.controls.gridview.ComboCellEditor.OnChange</a></div><div class="ttdeci">def OnChange</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00536">gridview.py:536</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a65362a0f78bc9b9d23ddabd13d731cb6"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a65362a0f78bc9b9d23ddabd13d731cb6">gui.controls.gridview.ComboCellEditor.EndEdit</a></div><div class="ttdeci">def EndEdit</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00560">gridview.py:560</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_acb53cbdae17bb3346ba11f69887d0148"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb53cbdae17bb3346ba11f69887d0148">gui.controls.gridview.GridTable.data</a></div><div class="ttdeci">data</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00150">gridview.py:150</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_accc2963111c98b528791f589ef3697a0"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#accc2963111c98b528791f589ef3697a0">gui.controls.gridview.GridTable._row_label</a></div><div class="ttdeci">_row_label</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00146">gridview.py:146</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a58fee9ee2b3e4a740711ff4d2b60b91c"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a58fee9ee2b3e4a740711ff4d2b60b91c">gui.controls.gridview.GridTable.GetTypeName</a></div><div class="ttdeci">def GetTypeName</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00208">gridview.py:208</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a6469a12e5c12c3d2019fe64900aae792"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a6469a12e5c12c3d2019fe64900aae792">gui.controls.gridview.GridTable.SetRawValue</a></div><div class="ttdeci">def SetRawValue</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00198">gridview.py:198</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_adae2e18973709734aeae837dd3ad8feb"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#adae2e18973709734aeae837dd3ad8feb">gui.controls.gridview.ComboCellEditor.SetSize</a></div><div class="ttdeci">def SetSize</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00539">gridview.py:539</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridColumn_html_ade7cb740d35dbe5f05c7484621ab6671"><div class="ttname"><a href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ade7cb740d35dbe5f05c7484621ab6671">gui.controls.gridview.GridColumn.name</a></div><div class="ttdeci">tuple name</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00366">gridview.py:366</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_a76dbe32a4f8cbc15357b768826f2d9ce"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a76dbe32a4f8cbc15357b768826f2d9ce">gui.controls.gridview.GridRow._grid_model</a></div><div class="ttdeci">_grid_model</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00462">gridview.py:462</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a70aa6bdf0e01270c3847077084a41bd1"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a70aa6bdf0e01270c3847077084a41bd1">gui.controls.gridview.ComboCellEditor.StartingClick</a></div><div class="ttdeci">def StartingClick</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00607">gridview.py:607</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_ae719e4dbb12a962079db8209e97d584b"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ae719e4dbb12a962079db8209e97d584b">gui.controls.gridview.GridTable.GetColLabelValue</a></div><div class="ttdeci">def GetColLabelValue</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00164">gridview.py:164</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a731b2a0d8eaad9ba4fdacc962250b002"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a731b2a0d8eaad9ba4fdacc962250b002">gui.controls.gridview.GridTable.IsEmptyCell</a></div><div class="ttdeci">def IsEmptyCell</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00201">gridview.py:201</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_a18ce9874e9185192f80e6e9520e995eb"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a18ce9874e9185192f80e6e9520e995eb">gui.controls.gridview.GridRow.ensure_visible</a></div><div class="ttdeci">def ensure_visible</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00514">gridview.py:514</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_aab55211c451a58d49e8356c0bab18057"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#aab55211c451a58d49e8356c0bab18057">gui.controls.gridview.ComboCellEditor.Clone</a></div><div class="ttdeci">def Clone</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00614">gridview.py:614</a></div></div>
<div class="ttc" id="classgui_1_1tools_1_1inspector_1_1InspectorTool_html"><div class="ttname"><a href="../../df/da2/classgui_1_1tools_1_1inspector_1_1InspectorTool.html">gui.tools.inspector.InspectorTool</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/da5/build_2lib_8linux-x86__64-2_87_2gui_2tools_2inspector_8py_source.html#l00281">inspector.py:281</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a95530e209d5680a7fcfadc395df4bd1f"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a95530e209d5680a7fcfadc395df4bd1f">gui.controls.gridview.GridTable.__init__</a></div><div class="ttdeci">def __init__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00136">gridview.py:136</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_aec1545dc706480437884fe5226e59458"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aec1545dc706480437884fe5226e59458">gui.controls.gridview.GridTable.GetNumberCols</a></div><div class="ttdeci">def GetNumberCols</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00152">gridview.py:152</a></div></div>
<div class="ttc" id="namespacegui_1_1controls_1_1gridview_html_af98fe99e73d22e5c2fc69e7670bafc48"><div class="ttname"><a href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#af98fe99e73d22e5c2fc69e7670bafc48">gui.controls.gridview.update</a></div><div class="ttdeci">def update</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00652">gridview.py:652</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_ab557cd393c24128f114ff2b62bfa7346"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#ab557cd393c24128f114ff2b62bfa7346">gui.controls.gridview.GridModel.__delitem__</a></div><div class="ttdeci">def __delitem__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00443">gridview.py:443</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_acede90a2f84f3f3b9667e64a2e49da02"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#acede90a2f84f3f3b9667e64a2e49da02">gui.controls.gridview.ComboCellEditor.__init__</a></div><div class="ttdeci">def __init__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00524">gridview.py:524</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_a4b916b99b3458dc2f08a2470525bde91"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a4b916b99b3458dc2f08a2470525bde91">gui.controls.gridview.GridRow.focus</a></div><div class="ttdeci">def focus</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00517">gridview.py:517</a></div></div>
<div class="ttc" id="namespacegui_1_1controls_1_1gridview_html_afb47020f3a26181d6cc5f0d86241abba"><div class="ttname"><a href="../../d3/d2b/namespacegui_1_1controls_1_1gridview.html#afb47020f3a26181d6cc5f0d86241abba">gui.controls.gridview.GridTableBase</a></div><div class="ttdeci">GridTableBase</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00128">gridview.py:128</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_abb49b3208ec8c4a37fa0a05672106671"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#abb49b3208ec8c4a37fa0a05672106671">gui.controls.gridview.GridModel.insert</a></div><div class="ttdeci">def insert</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00410">gridview.py:410</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_acb04002eecdd3330dd6e645fd1f84862"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#acb04002eecdd3330dd6e645fd1f84862">gui.controls.gridview.GridTable.UpdateValues</a></div><div class="ttdeci">def UpdateValues</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00291">gridview.py:291</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_ab3e025fecaecbb1dd957d761241541a9"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ab3e025fecaecbb1dd957d761241541a9">gui.controls.gridview.GridTable.SortColumn</a></div><div class="ttdeci">def SortColumn</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00313">gridview.py:313</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_aca17abc8a8ef61c82212b0ae4dd30a29"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aca17abc8a8ef61c82212b0ae4dd30a29">gui.controls.gridview.GridTable.AppendRows</a></div><div class="ttdeci">def AppendRows</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00250">gridview.py:250</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_a95d7630c1ab440ccf39c3c8afc643351"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a95d7630c1ab440ccf39c3c8afc643351">gui.controls.gridview.GridRow._select</a></div><div class="ttdeci">def _select</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00505">gridview.py:505</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_af8b4e44e6ccb375a54eb8cb1d7d2c764"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#af8b4e44e6ccb375a54eb8cb1d7d2c764">gui.controls.gridview.GridRow.__setitem__</a></div><div class="ttdeci">def __setitem__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00470">gridview.py:470</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridColumn_html_a6dbbeee2c94980129d22cbe312a584f7"><div class="ttname"><a href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a6dbbeee2c94980129d22cbe312a584f7">gui.controls.gridview.GridColumn.destroy</a></div><div class="ttdeci">def destroy</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00352">gridview.py:352</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_aef24894c8e0047ff59532c3aa03359a4"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef24894c8e0047ff59532c3aa03359a4">gui.controls.gridview.GridTable.columns</a></div><div class="ttdeci">columns</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00149">gridview.py:149</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_a1f93c53e6529292e80f3ea3862e45e02"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a1f93c53e6529292e80f3ea3862e45e02">gui.controls.gridview.GridModel.__setitem__</a></div><div class="ttdeci">def __setitem__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00428">gridview.py:428</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridColumn_html"><div class="ttname"><a href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html">gui.controls.gridview.GridColumn</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00332">gridview.py:332</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_a2dc44c1397c67d8fca80cf4f5630ca2a"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a2dc44c1397c67d8fca80cf4f5630ca2a">gui.controls.gridview.GridModel._refresh</a></div><div class="ttdeci">def _refresh</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00437">gridview.py:437</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridColumn_html_a5b81ef60dbd2091f92dc9a3c44d2834e"><div class="ttname"><a href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a5b81ef60dbd2091f92dc9a3c44d2834e">gui.controls.gridview.GridColumn.__setattr__</a></div><div class="ttdeci">def __setattr__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00360">gridview.py:360</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a20026795aee619c4c6cc121833046e8a"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a20026795aee619c4c6cc121833046e8a">gui.controls.gridview.ComboCellEditor.IsAcceptedKey</a></div><div class="ttdeci">def IsAcceptedKey</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00584">gridview.py:584</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_a72cb90406aa2393956ae8e990b65c037"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a72cb90406aa2393956ae8e990b65c037">gui.controls.gridview.GridRow.__init__</a></div><div class="ttdeci">def __init__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00461">gridview.py:461</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_ae03acbf5ef4496cd63de436865c1ff57"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#ae03acbf5ef4496cd63de436865c1ff57">gui.controls.gridview.ComboCellEditor.Reset</a></div><div class="ttdeci">def Reset</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00579">gridview.py:579</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a849167e652d184348c838402375f9ac3"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a849167e652d184348c838402375f9ac3">gui.controls.gridview.GridTable.CanSetValueAs</a></div><div class="ttdeci">def CanSetValueAs</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00231">gridview.py:231</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a8f38eb56264218bd4100fef177b1c5a3"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a8f38eb56264218bd4100fef177b1c5a3">gui.controls.gridview.GridTable._updateColAttrs</a></div><div class="ttdeci">def _updateColAttrs</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00298">gridview.py:298</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a448781f8024cfa6309e1a00edf933714"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a448781f8024cfa6309e1a00edf933714">gui.controls.gridview.ComboCellEditor.StartingKey</a></div><div class="ttdeci">def StartingKey</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00591">gridview.py:591</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a02d4786ebc777b5167b0208f1af2923d"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a02d4786ebc777b5167b0208f1af2923d">gui.controls.gridview.GridTable.CanGetValueAs</a></div><div class="ttdeci">def CanGetValueAs</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00224">gridview.py:224</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_ae0fc78a27cd017f93f6a662995607b2e"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#ae0fc78a27cd017f93f6a662995607b2e">gui.controls.gridview.GridModel.__init__</a></div><div class="ttdeci">def __init__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00403">gridview.py:403</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_a363d8c78860b4afb91cad46e0a903403"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a363d8c78860b4afb91cad46e0a903403">gui.controls.gridview.GridModel.append</a></div><div class="ttdeci">def append</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00419">gridview.py:419</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridView_html_a9e9bb0622ca1cd26d746c560b9b4d46a"><div class="ttname"><a href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a9e9bb0622ca1cd26d746c560b9b4d46a">gui.controls.gridview.GridView._get_items</a></div><div class="ttdeci">def _get_items</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00055">gridview.py:55</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html">gui.controls.gridview.GridRow</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00458">gridview.py:458</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridColumn_html_a8ef557cc53f2d15ecc6ed419e67bb882"><div class="ttname"><a href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a8ef557cc53f2d15ecc6ed419e67bb882">gui.controls.gridview.GridColumn._created</a></div><div class="ttdeci">_created</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00335">gridview.py:335</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridView_html_a820d36ab034f85443928e13ccbaa3a6a"><div class="ttname"><a href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a820d36ab034f85443928e13ccbaa3a6a">gui.controls.gridview.GridView._set_row_label</a></div><div class="ttdeci">def _set_row_label</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00078">gridview.py:78</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a82d0ed1526c8ff2af4bd176f7251563a"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a82d0ed1526c8ff2af4bd176f7251563a">gui.controls.gridview.GridTable.GetValue</a></div><div class="ttdeci">def GetValue</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00170">gridview.py:170</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a8ceca9f18caabddff7a40bfbbdac7d55"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a8ceca9f18caabddff7a40bfbbdac7d55">gui.controls.gridview.GridTable.InsertCols</a></div><div class="ttdeci">def InsertCols</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00234">gridview.py:234</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_a9211583a87a01a4513fca91c2eddf5cc"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a9211583a87a01a4513fca91c2eddf5cc">gui.controls.gridview.GridModel.clear</a></div><div class="ttdeci">def clear</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00448">gridview.py:448</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_aeb8160fe731641aa797be02f30d4f5cd"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#aeb8160fe731641aa797be02f30d4f5cd">gui.controls.gridview.GridRow.__getitem__</a></div><div class="ttdeci">def __getitem__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00490">gridview.py:490</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_aedf892465769115e6b86997d2fd1a92c"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aedf892465769115e6b86997d2fd1a92c">gui.controls.gridview.GridTable.InsertRows</a></div><div class="ttdeci">def InsertRows</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00246">gridview.py:246</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_ac3d3c13db875b0edc129f545c8231194"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ac3d3c13db875b0edc129f545c8231194">gui.controls.gridview.GridTable.AppendCols</a></div><div class="ttdeci">def AppendCols</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00238">gridview.py:238</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a1d9e168978bcffb9c7808877d909aa78"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a1d9e168978bcffb9c7808877d909aa78">gui.controls.gridview.ComboCellEditor.ApplyEdit</a></div><div class="ttdeci">def ApplyEdit</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00572">gridview.py:572</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_a2f3d5dea451595555f72f5cc05f6d053"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a2f3d5dea451595555f72f5cc05f6d053">gui.controls.gridview.GridRow._is_selected</a></div><div class="ttdeci">def _is_selected</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00502">gridview.py:502</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a9888cfe4f606659d74b1f0df16d797b0"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a9888cfe4f606659d74b1f0df16d797b0">gui.controls.gridview.GridTable.DeleteCols</a></div><div class="ttdeci">def DeleteCols</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00242">gridview.py:242</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridView_html_af68f80c6d63d03ba60e1b03827f320df"><div class="ttname"><a href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#af68f80c6d63d03ba60e1b03827f320df">gui.controls.gridview.GridView._get_row_label</a></div><div class="ttdeci">def _get_row_label</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00074">gridview.py:74</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_afdb27c617ed8b2e503e5808206ab8912"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#afdb27c617ed8b2e503e5808206ab8912">gui.controls.gridview.GridModel._key</a></div><div class="ttdeci">_key</div><div class="ttdoc">list has no clear ... </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00453">gridview.py:453</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1wx__Grid_html_a462ada0c0bacb0c612bef0b347a41e15"><div class="ttname"><a href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a462ada0c0bacb0c612bef0b347a41e15">gui.controls.gridview.wx_Grid.__init__</a></div><div class="ttdeci">def __init__</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00028">gridview.py:28</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html">gui.controls.gridview.GridModel</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00400">gridview.py:400</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a02d0e93cb1c0a64b77584b745e87f0e2"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a02d0e93cb1c0a64b77584b745e87f0e2">gui.controls.gridview.ComboCellEditor.Create</a></div><div class="ttdeci">def Create</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00528">gridview.py:528</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridRow_html_a81ddd2d438031c1069f99a9ce6a6a111"><div class="ttname"><a href="../../d8/de6/classgui_1_1controls_1_1gridview_1_1GridRow.html#a81ddd2d438031c1069f99a9ce6a6a111">gui.controls.gridview.GridRow.index</a></div><div class="ttdeci">def index</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00498">gridview.py:498</a></div></div>
<div class="ttc" id="namespacegui_1_1tools_1_1inspector_html"><div class="ttname"><a href="../../d4/d72/namespacegui_1_1tools_1_1inspector.html">gui.tools.inspector</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/da5/build_2lib_8linux-x86__64-2_87_2gui_2tools_2inspector_8py_source.html#l00001">inspector.py:1</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_aa8087db179777806231572178f69e1a5"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aa8087db179777806231572178f69e1a5">gui.controls.gridview.GridTable.wx_grid</a></div><div class="ttdeci">wx_grid</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00140">gridview.py:140</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a39b3fc3bae749e44c80543f1db3abd1c"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a39b3fc3bae749e44c80543f1db3abd1c">gui.controls.gridview.ComboCellEditor.PaintBackground</a></div><div class="ttdeci">def PaintBackground</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00548">gridview.py:548</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_aef8a50d43a190a5b3828b123e46af74c"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#aef8a50d43a190a5b3828b123e46af74c">gui.controls.gridview.GridTable.GetRawValue</a></div><div class="ttdeci">def GetRawValue</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00179">gridview.py:179</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a3f1e6702d418906cb444039b7e6b7442"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a3f1e6702d418906cb444039b7e6b7442">gui.controls.gridview.GridTable.GetRowLabelValue</a></div><div class="ttdeci">def GetRowLabelValue</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00167">gridview.py:167</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a33c674f2e4ba5585d361212707685a00"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a33c674f2e4ba5585d361212707685a00">gui.controls.gridview.ComboCellEditor.Destroy</a></div><div class="ttdeci">def Destroy</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00610">gridview.py:610</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_a25499840cdbef32ef2f196860318787c"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#a25499840cdbef32ef2f196860318787c">gui.controls.gridview.ComboCellEditor.Show</a></div><div class="ttdeci">def Show</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00544">gridview.py:544</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridColumn_html_ad25f2b19cfa01e40e77450a2f87faeca"><div class="ttname"><a href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#ad25f2b19cfa01e40e77450a2f87faeca">gui.controls.gridview.GridColumn.index</a></div><div class="ttdeci">tuple index</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00368">gridview.py:368</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_ad3737b47992f7e42bf3789292c7219a7"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#ad3737b47992f7e42bf3789292c7219a7">gui.controls.gridview.GridTable.DeleteRows</a></div><div class="ttdeci">def DeleteRows</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00254">gridview.py:254</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a5b7b589585e218c8ecaa21389f6c5a1f"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a5b7b589585e218c8ecaa21389f6c5a1f">gui.controls.gridview.GridTable.ResetView</a></div><div class="ttdeci">def ResetView</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00258">gridview.py:258</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridView_html_a19b8177958b9d1f1213b9ed51c60e737"><div class="ttname"><a href="../../da/df7/classgui_1_1controls_1_1gridview_1_1GridView.html#a19b8177958b9d1f1213b9ed51c60e737">gui.controls.gridview.GridView._set_items</a></div><div class="ttdeci">def _set_items</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00058">gridview.py:58</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridModel_html_a6bbb5efa913524d9cf46f8e7e8770260"><div class="ttname"><a href="../../db/db7/classgui_1_1controls_1_1gridview_1_1GridModel.html#a6bbb5efa913524d9cf46f8e7e8770260">gui.controls.gridview.GridModel._grid_view</a></div><div class="ttdeci">_grid_view</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00405">gridview.py:405</a></div></div>
<div class="ttc" id="namespacegui_1_1component_html_a937836205f3a4daa11179df3fc58e3c9"><div class="ttname"><a href="../../d9/d90/namespacegui_1_1component.html#a937836205f3a4daa11179df3fc58e3c9">gui.component.get</a></div><div class="ttdeci">def get</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d08/build_2lib_8linux-x86__64-2_87_2gui_2component_8py_source.html#l01148">component.py:1148</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridColumn_html_a0f81ebad01ef259ece602fcd1eb522a9"><div class="ttname"><a href="../../d5/d7e/classgui_1_1controls_1_1gridview_1_1GridColumn.html#a0f81ebad01ef259ece602fcd1eb522a9">gui.controls.gridview.GridColumn.set_parent</a></div><div class="ttdeci">def set_parent</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00338">gridview.py:338</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html_af96d2550eeba453d324a49957c5b06b2"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html#af96d2550eeba453d324a49957c5b06b2">gui.controls.gridview.ComboCellEditor.wx_grid</a></div><div class="ttdeci">wx_grid</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00526">gridview.py:526</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1wx__Grid_html_a3407c195c9f5b5a86799efb82f735b94"><div class="ttname"><a href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a3407c195c9f5b5a86799efb82f735b94">gui.controls.gridview.wx_Grid.Reset</a></div><div class="ttdeci">def Reset</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00043">gridview.py:43</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1wx__Grid_html_a6a2fce3262e4fbaeaeea9496dbe3bcb4"><div class="ttname"><a href="../../d2/d00/classgui_1_1controls_1_1gridview_1_1wx__Grid.html#a6a2fce3262e4fbaeaeea9496dbe3bcb4">gui.controls.gridview.wx_Grid._table</a></div><div class="ttdeci">_table</div><div class="ttdoc">mixins.GridAutoEditMixin.__init__(self) </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00033">gridview.py:33</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1ComboCellEditor_html"><div class="ttname"><a href="../../da/d53/classgui_1_1controls_1_1gridview_1_1ComboCellEditor.html">gui.controls.gridview.ComboCellEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00521">gridview.py:521</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a171c43e06d1736dd5eb314dee16b6576"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a171c43e06d1736dd5eb314dee16b6576">gui.controls.gridview.GridTable._cols</a></div><div class="ttdeci">_cols</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00145">gridview.py:145</a></div></div>
<div class="ttc" id="classgui_1_1controls_1_1gridview_1_1GridTable_html_a54f8af95c896e39514c04f4fe15b2edb"><div class="ttname"><a href="../../d2/d57/classgui_1_1controls_1_1gridview_1_1GridTable.html#a54f8af95c896e39514c04f4fe15b2edb">gui.controls.gridview.GridTable.plugins</a></div><div class="ttdeci">plugins</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py_source.html#l00141">gridview.py:141</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="../../dir_96a7eeec1342994a7cb0d7fe7902ae74.html">build</a></li><li class="navelem"><a class="el" href="../../dir_3740601ea11ece1a00f9273977396bc4.html">lib.linux-x86_64-2.7</a></li><li class="navelem"><a class="el" href="../../dir_5bcb0661a26d4ce62009196be9ab2e39.html">gui</a></li><li class="navelem"><a class="el" href="../../dir_4c91e8b673aaef7bf66ef8a4b005b30e.html">controls</a></li><li class="navelem"><a class="el" href="../../dd/d5a/build_2lib_8linux-x86__64-2_87_2gui_2controls_2gridview_8py.html">gridview.py</a></li>
    <li class="footer">Generado el Domingo, 7 de Diciembre de 2014 18:59:47 para gui2py por
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
